package com.example.wisdomclassroomapi.domain.repository;

import com.example.wisdomclassroomapi.domain.entity.FilePeriodEntity;
import com.example.wisdomclassroomapi.infrastructure.mapper.FilePeriodMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Repository;
import javax.annotation.Resource;
import java.util.List;
/**
 * @Package: com.example.wisdomclassroomapi.domain.repository
 * @Description: <>
 * @Author: scholes
 * @CreateDate: 2022-04-20
 * @UpdateUser: scholes
 * @UpdateDate: 2022-04-20
 * @UpdateRemark: <>
 * @Version: 1.0
 */
@Repository
public class FilePeriodRepository {
    @Resource
    private FilePeriodMapper filePeriodMapper;

    public void add(FilePeriodEntity entity) {
       filePeriodMapper.insert(entity);
    }

    public FilePeriodEntity findById(String id) {
        return filePeriodMapper.selectById(id);
    }

    public int updateById(FilePeriodEntity entity) {
        return filePeriodMapper.updateById(entity);
    }

    public int deleteById(String id) {
        return filePeriodMapper.deleteById(id);
    }

    public IPage<FilePeriodEntity> page(FilePeriodEntity entity,IPage page) {
        QueryWrapper<FilePeriodEntity> wrapper = new QueryWrapper<>();
            if (StringUtils.isNotBlank(entity.getPath())){
            wrapper.eq("path",entity.getPath());
            }
            if (StringUtils.isNotBlank(entity.getName())){
            wrapper.eq("name",entity.getName());
            }
            if (StringUtils.isNotBlank(entity.getSuffix())){
            wrapper.eq("suffix",entity.getSuffix());
            }
            if (entity.getSize()!=null){
            wrapper.eq("size",entity.getSize());
            }
            if (entity.getPeriodIndex()!=null){
            wrapper.eq("period_index",entity.getPeriodIndex());
            }
            if (entity.getPeriodSize()!=null){
            wrapper.eq("period_size",entity.getPeriodSize());
            }
            if (entity.getPeriodTotal()!=null){
            wrapper.eq("period_total",entity.getPeriodTotal());
            }
            if (StringUtils.isNotBlank(entity.getFileKey())){
            wrapper.eq("file_key",entity.getFileKey());
            }
        return filePeriodMapper.selectPage(page, wrapper);
    }

    public List<FilePeriodEntity> list(FilePeriodEntity entity) {
        QueryWrapper<FilePeriodEntity> wrapper = new QueryWrapper<>();
            if (StringUtils.isNotBlank(entity.getPath())){
            wrapper.eq("path",entity.getPath());
            }
            if (StringUtils.isNotBlank(entity.getName())){
            wrapper.eq("name",entity.getName());
            }
            if (StringUtils.isNotBlank(entity.getSuffix())){
            wrapper.eq("suffix",entity.getSuffix());
            }
            if (entity.getSize()!=null){
                wrapper.eq("size",entity.getSize());
            }
            if (entity.getPeriodIndex()!=null){
                wrapper.eq("period_index",entity.getPeriodIndex());
            }
            if (entity.getPeriodSize()!=null){
                wrapper.eq("period_size",entity.getPeriodSize());
            }
            if (entity.getPeriodTotal()!=null){
                wrapper.eq("period_total",entity.getPeriodTotal());
            }
            if (StringUtils.isNotBlank(entity.getFileKey())){
            wrapper.eq("file_key",entity.getFileKey());
            }
        return filePeriodMapper.selectList(wrapper);
    }

}